﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using QLNS.Class;
namespace QLNS.NghiepVu
{
    public partial class frmToMon : Form
    {
        DB cn = new DB();
        public frmToMon()
        {
            InitializeComponent();
        }

        private string tag;
        private void frmToMon_Load(object sender, EventArgs e)
        {
            tag = "";
            Load_button(tag);
            Load_grid();
        }
        private void Load_button(string tag)
        {
            if(tag=="them")
            {
                btnLuu.Enabled=true;
                btnHuy.Enabled=true;

                btnSua.Enabled=false;
                btnThem.Enabled=false;
                btnXoa.Enabled=false;

                txtMaToMon.Enabled=false;
                txtTenToMon.Text="";
                txtTenToMon.Enabled=true;

            }
            else if(tag=="sua")
            {
                btnHuy.Enabled=true;
                btnLuu.Enabled=true;

               btnSua.Enabled=false;
                btnThem.Enabled=false;
                btnXoa.Enabled=false;

                txtTenToMon.Enabled = true;

            }
            else 
            {
                btnThem.Enabled=true;
                btnSua.Enabled=true;
                btnXoa.Enabled=true;

                btnHuy.Enabled=false;
                btnLuu.Enabled=false;

                txtTenToMon.Enabled=false;
                txtMaToMon.Enabled=false;
            }
        }
        private void Load_grid()
        {
            // đầu tiên phải xem kết nối có mở k
            // select row_number 
            if(cn.KetNoi())
            {// hàm load dữ liệu vợ thêm cột stt vào. vậy cột đó trong dtg đâu?
                //vợ k cho nên nó phải chèn vào cuối đấy ku làm lại cho vợ xem ddi
                //cái đoàn row_number() orver(order by ...)as STT
                //thực chất là mình thêm vào cột stt trogn dtg cho dễ nhìn
                //k có cung đc k sao
                //nó chỉ có trên dtg. chứ k có trong csdl. vợ hiểu chưa? chả hiểu gi k cần thiết sao cho vào lam gì
                //cho vào cho đẹp. cho biết cái tổ môn này số thứ tự là bn?
              ///tu đã chả hiểu gì vậy mình còn cho stt trong dtg làm gì nữa khi đã có câu lênh over,,,, nay
              ///câu lệnh này chỉ trả về 1 bảng tbl kia kìa nó chỉ trả về cái đó. còn sau đó gán cái bảng vừa
              //select vào thằng dtg này
                DataTable tbl= cn.getTable(" select * from ToMon");//bỏ k cần thiết
                dtgToMon.DataSource=tbl;// gán bảng vào dtg là đây
            }
        }

        private void btnThem_Click(object sender, EventArgs e)
        {
            tag = "them";
            Load_button(tag);//vợ sinh mã kiểu gì vây? đúng rồi thi sai ở đâu. sai ở id và tên bảng kia kìa. ngược nhau rồi
            txtMaToMon.Text = cn.SinhMa("MaToMon","ToMon","TM");

        }

        private void btnSua_Click(object sender, EventArgs e)
        {
            tag = "sua";
            Load_button(tag );
        }

        private void btnXoa_Click(object sender, EventArgs e)
        {
            DialogResult h = MessageBox.Show("Bạn có muốn xóa không?","Thông báo",MessageBoxButtons.YesNo,MessageBoxIcon.Question );
            if(h==DialogResult.Yes )
            {
                cn.KetNoi();
                cn.Delete_Table("ToMon", "MaToMon='" + txtMaToMon.Text + "'");
                MessageBox.Show("Xóa dữ liệu thành công");
                Load_button(tag );
                Load_grid();
            }
        }

        private void btnLuu_Click(object sender, EventArgs e)
        {
           
            if (cn.KetNoi())
            {
                if (tag == "them")
                {
                    if (txtTenToMon.Text == "")
                    {
                        MessageBox.Show("Bạn chưa nhập tên tổ môn");
                        txtTenToMon.Focus();
                        return;
                    }
                    else
                    {
                        string ketqua = cn.LayDuLieu("select TenToMon from ToMon where TenToMon=N'" + txtTenToMon.Text + "'");
                        if (ketqua != "")
                        {
                            MessageBox.Show("Dữ liệu trùng!!");
                            txtTenToMon.Focus();
                            return;
                        }
                    }
                    cn.KetNoi();
                    //kích vào đó để bắt lỗi. chạy chương trình
                    cn.Insert_Table("ToMon","MaToMon,TenToMon","'" + txtMaToMon.Text + "',N'" + txtTenToMon.Text + "'");
                    //Load_grid();
                    //Load_button(tag);
                }
                else
                {
                    if (txtTenToMon.Text == "")
                    {
                        MessageBox.Show("Bạn chưa nhập tên tổ môn");
                        txtTenToMon.Focus();
                        return;
                    }
                    else
                    {
                        string ketqua = cn.LayDuLieu("select TenToMon from ToMon where TenToMon=N'"+txtTenToMon.Text +"'");
                        if(ketqua!="")
                        {
                            MessageBox.Show("Dữ liệu bị trùng");
                            txtTenToMon.Focus();
                            return;
                        }
                    }
                    cn.KetNoi();
                    cn.Update_Table("ToMon","TenToMon=N'"+txtTenToMon.Text +"'","MaToMon='"+txtMaToMon.Text +"'");
                  
                   //vợ viết code kiểu gì đây? sai ở đâu nói đi  si biết đưuọc vi
                   //load 2 cái kia đang ở chỗ nào mà vợ viết ở đó? phải laod sau dong ngoặc ak
                }
                tag = "";
                Load_button(tag);
                Load_grid();// đúng k. thế sao vợ cho lên kia? nhầm
                //viết song k load lại dtg. k load lại trạng thái nút. vậy sao biết nó đã lưu đc hay   đâu mà lúc đó vợ sửa  đang định thêm cái cảu nút sửa khi lưu , cái trên chỉ là thêm thôi. dù thêm hay sửa đều phải load lại dtg. nếu k sao load đc dữ liệu lên?. thì cuối cùng sau mấy cái điều kiện if và else rồi mới laod chứ . chả nhẽ
            }
           
        }

        private void btnHuy_Click(object sender, EventArgs e)
        {
            tag = "";
            Load_button(tag);

        }

        private void btnThoat_Click(object sender, EventArgs e)
        {
            DialogResult h = MessageBox.Show("Bạn có muốn thoát không?","Thông báo",MessageBoxButtons.YesNo,MessageBoxIcon.Question );
            if(h== DialogResult.Yes )
            {
                this.Close();
            }
        }

        private void dtgToMon_SelectionChanged(object sender, EventArgs e)
        {
            if(dtgToMon.RowCount>0)
            {
                txtMaToMon.Text = dtgToMon.CurrentRow.Cells["MaToMon"].Value.ToString();
                txtTenToMon.Text = dtgToMon.CurrentRow.Cells["TenToMon"].Value.ToString();
            }
        }

    }
}
